



<!doctype html>
<html lang="en" class="no-js">
  <head>
    
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width,initial-scale=1">
      <meta http-equiv="x-ua-compatible" content="ie=edge">
      
        <meta name="description" content="Distributed Computing for AI Made Simple">
      
      
      
        <meta name="author" content="Jiale Zhi">
      
      
        <meta name="lang:clipboard.copy" content="Copy to clipboard">
      
        <meta name="lang:clipboard.copied" content="Copied to clipboard">
      
        <meta name="lang:search.language" content="en">
      
        <meta name="lang:search.pipeline.stopwords" content="True">
      
        <meta name="lang:search.pipeline.trimmer" content="True">
      
        <meta name="lang:search.result.none" content="No matching documents">
      
        <meta name="lang:search.result.one" content="1 matching document">
      
        <meta name="lang:search.result.other" content="# matching documents">
      
        <meta name="lang:search.tokenizer" content="[\s\-]+">
      
      <link rel="shortcut icon" href="../img/favicon.ico">
      <meta name="generator" content="mkdocs-1.0.4, mkdocs-material-4.6.0">
    
    
      
        <title>Config - Fiber</title>
      
    
    
      <link rel="stylesheet" href="../assets/stylesheets/application.1b62728e.css">
      
        <link rel="stylesheet" href="../assets/stylesheets/application-palette.a8b3c06d.css">
      
      
        
        
        <meta name="theme-color" content="">
      
    
    
      <script src="../assets/javascripts/modernizr.268332fc.js"></script>
    
    
      
        <link href="https://fonts.gstatic.com" rel="preconnect" crossorigin>
        <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,400i,700%7CRoboto+Mono&display=fallback">
        <style>body,input{font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif}code,kbd,pre{font-family:"Roboto Mono","Courier New",Courier,monospace}</style>
      
    
    <link rel="stylesheet" href="../assets/fonts/material-icons.css">
    
    
    
      
    
    
  </head>
  
    
    
    <body dir="ltr" data-md-color-primary="white" data-md-color-accent="">
  
    <svg class="md-svg">
      <defs>
        
        
          <svg xmlns="http://www.w3.org/2000/svg" width="416" height="448" viewBox="0 0 416 448" id="__github"><path fill="currentColor" d="M160 304q0 10-3.125 20.5t-10.75 19T128 352t-18.125-8.5-10.75-19T96 304t3.125-20.5 10.75-19T128 256t18.125 8.5 10.75 19T160 304zm160 0q0 10-3.125 20.5t-10.75 19T288 352t-18.125-8.5-10.75-19T256 304t3.125-20.5 10.75-19T288 256t18.125 8.5 10.75 19T320 304zm40 0q0-30-17.25-51T296 232q-10.25 0-48.75 5.25Q229.5 240 208 240t-39.25-2.75Q130.75 232 120 232q-29.5 0-46.75 21T56 304q0 22 8 38.375t20.25 25.75 30.5 15 35 7.375 37.25 1.75h42q20.5 0 37.25-1.75t35-7.375 30.5-15 20.25-25.75T360 304zm56-44q0 51.75-15.25 82.75-9.5 19.25-26.375 33.25t-35.25 21.5-42.5 11.875-42.875 5.5T212 416q-19.5 0-35.5-.75t-36.875-3.125-38.125-7.5-34.25-12.875T37 371.5t-21.5-28.75Q0 312 0 260q0-59.25 34-99-6.75-20.5-6.75-42.5 0-29 12.75-54.5 27 0 47.5 9.875t47.25 30.875Q171.5 96 212 96q37 0 70 8 26.25-20.5 46.75-30.25T376 64q12.75 25.5 12.75 54.5 0 21.75-6.75 42 34 40 34 99.5z"/></svg>
        
      </defs>
    </svg>
    <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
    <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
    <label class="md-overlay" data-md-component="overlay" for="__drawer"></label>
    
      <a href="#config-file" tabindex="1" class="md-skip">
        Skip to content
      </a>
    
    
      <header class="md-header" data-md-component="header">

    <nav class="md-header-nav md-grid">
        <div class="md-flex">
            <div class="md-flex__cell md-flex__cell--shrink">
                <a class="md-header-nav__button md-logo"
                   href=".." title="Fiber">
                    <img src="../img/fiber_logo.png" style="height:1.4rem;">
                </a>
            </div>
            <div class="md-flex__cell md-flex__cell--shrink">
                <label class="md-icon md-icon--menu md-header-nav__button" for="__drawer"></label>
            </div>
            <div class="md-flex__cell md-flex__cell--stretch">
                <div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
                    
                    <span class="md-header-nav__topic">
                    Config
                    </span>
                    
                </div>
            </div>
            <div class="md-flex__cell md-flex__cell--shrink">
                
                
                <label class="md-icon md-icon--search md-header-nav__button" for="__search"></label>
                
<div class="md-search" data-md-component="search" role="dialog">
  <label class="md-search__overlay" for="__search"></label>
  <div class="md-search__inner" role="search">
    <form class="md-search__form" name="search">
      <input type="text" class="md-search__input" name="query" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="query" data-md-state="active">
      <label class="md-icon md-search__icon" for="__search"></label>
      <button type="reset" class="md-icon md-search__icon" data-md-component="reset" tabindex="-1">
        &#xE5CD;
      </button>
    </form>
    <div class="md-search__output">
      <div class="md-search__scrollwrap" data-md-scrollfix>
        <div class="md-search-result" data-md-component="result">
          <div class="md-search-result__meta">
            Type to start searching
          </div>
          <ol class="md-search-result__list"></ol>
        </div>
      </div>
    </div>
  </div>
</div>
                
                
            </div>
            
            <div class="md-flex__cell md-flex__cell--shrink">
                <div class="md-header-nav__source">
                    


  

<a href="https://github.com/uber/fiber/" title="Go to repository" class="md-source" data-md-source="github">
  
    <div class="md-source__icon">
      <svg viewBox="0 0 24 24" width="24" height="24">
        <use xlink:href="#__github" width="24" height="24"></use>
      </svg>
    </div>
  
  <div class="md-source__repository">
    uber/fiber
  </div>
</a>
                </div>
            </div>
            
        </div>
    </nav>
</header>
    
    <div class="md-container">
      
        
      
      
      <main class="md-main" role="main">
        <div class="md-main__inner md-grid" data-md-component="container">
          
            
              <div class="md-sidebar md-sidebar--primary" data-md-component="navigation">
                <div class="md-sidebar__scrollwrap">
                  <div class="md-sidebar__inner">
                    <nav class="md-nav md-nav--primary" data-md-level="0">
    <label class="md-nav__title md-nav__title--site" for="__drawer">
        <a class="md-nav__button md-logo" href=".."
           title="Fiber">
            <img src="../img/fiber_logo.png" style="width: 10rem">
        </a>
    </label>
    
    <div class="md-nav__source">
        


  

<a href="https://github.com/uber/fiber/" title="Go to repository" class="md-source" data-md-source="github">
  
    <div class="md-source__icon">
      <svg viewBox="0 0 24 24" width="24" height="24">
        <use xlink:href="#__github" width="24" height="24"></use>
      </svg>
    </div>
  
  <div class="md-source__repository">
    uber/fiber
  </div>
</a>
    </div>
    
    <ul class="md-nav__list" data-md-scrollfix>
        
        
        
        


  <li class="md-nav__item">
    <a href=".." title="Home" class="md-nav__link">
      Home
    </a>
  </li>

        
        
        
        


  <li class="md-nav__item">
    <a href="../why/" title="Why Use Fiber" class="md-nav__link">
      Why Use Fiber
    </a>
  </li>

        
        
        
        


  <li class="md-nav__item">
    <a href="../introduction/" title="Introduction to Fiber" class="md-nav__link">
      Introduction to Fiber
    </a>
  </li>

        
        
        
        


  <li class="md-nav__item">
    <a href="../getting-started/" title="Getting Started" class="md-nav__link">
      Getting Started
    </a>
  </li>

        
        
        
        


  <li class="md-nav__item">
    <a href="../advanced/" title="More about Fiber" class="md-nav__link">
      More about Fiber
    </a>
  </li>

        
        
        
        


  <li class="md-nav__item">
    <a href="../examples/" title="Examples" class="md-nav__link">
      Examples
    </a>
  </li>

        
        
        
        


  <li class="md-nav__item">
    <a href="../installation/" title="Installation" class="md-nav__link">
      Installation
    </a>
  </li>

        
        
        
        


  <li class="md-nav__item">
    <a href="../platforms/" title="Platforms and Backends" class="md-nav__link">
      Platforms and Backends
    </a>
  </li>

        
        
        
        

  


  <li class="md-nav__item md-nav__item--active md-nav__item--nested">
    
      <input class="md-toggle md-nav__toggle" data-md-toggle="nav-9" type="checkbox" id="nav-9" checked>
    
    <label class="md-nav__link" for="nav-9">
      API Documentation
    </label>
    <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
      <label class="md-nav__title" for="nav-9">
        API Documentation
      </label>
      <ul class="md-nav__list" data-md-scrollfix>
        
        
          
          
          


  <li class="md-nav__item">
    <a href="../process/" title="Process" class="md-nav__link">
      Process
    </a>
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../queues/" title="Queues" class="md-nav__link">
      Queues
    </a>
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../pool/" title="Pool" class="md-nav__link">
      Pool
    </a>
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../managers/" title="Managers" class="md-nav__link">
      Managers
    </a>
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../experimental/ring/" title="Ring" class="md-nav__link">
      Ring
    </a>
  </li>

        
          
          
          

  


  <li class="md-nav__item md-nav__item--active">
    
    <input class="md-toggle md-nav__toggle" data-md-toggle="toc" type="checkbox" id="__toc">
    
      
    
    
    <a href="./" title="Config" class="md-nav__link md-nav__link--active">
      Config
    </a>
    
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../meta/" title="Metadata" class="md-nav__link">
      Metadata
    </a>
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../cli/" title="Command Line Tool" class="md-nav__link">
      Command Line Tool
    </a>
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../misc/" title="Misc" class="md-nav__link">
      Misc
    </a>
  </li>

        
      </ul>
    </nav>
  </li>

        
    </ul>
</nav>
                  </div>
                </div>
              </div>
            
            
              <div class="md-sidebar md-sidebar--secondary" data-md-component="toc">
                <div class="md-sidebar__scrollwrap">
                  <div class="md-sidebar__inner">
                    
<nav class="md-nav md-nav--secondary">
  
  
    
  
  
</nav>
                  </div>
                </div>
              </div>
            
          
          <div class="md-content">
            <article class="md-content__inner md-typeset">
              
                
                  <a href="https://github.com/uber/fiber/edit/master/mkdocs/config.md" title="Edit this page" class="md-icon md-content__icon">&#xE3C9;</a>
                
                
                <h1 id="fiber.config">fiber.config</h1>

<p>This module deals with Fiber configurations.</p>
<p>There are 3 way of setting Fiber configurations: config file, environment
variable and Python code. The priorities are: Python code &gt; environment
variable &gt; config file.</p>
<h5 id="config-file">Config file<a class="headerlink" href="#config-file" title="Permanent link">&para;</a></h5>
<p>Fiber config file is a plain text file following Python's
<a href="https://docs.python.org/3.6/library/configparser.html">configparser</a> file
format. It needs to be named <code>.fiberconfig</code> and put into the directory where
you launch your code.</p>
<p>An example <code>.fiberconfig</code> file:</p>
<div class="codehilite"><pre><span></span>[default]
log_level=debug
log_file=stdout
backend=local
</pre></div>


<h5 id="environment-variable">Environment variable<a class="headerlink" href="#environment-variable" title="Permanent link">&para;</a></h5>
<p>Alternatively, you can also use environment variables to pass configurations to
Fiber. The environment variable names are in format <code>FIBER_</code> + config name in
upper case.</p>
<p>For example, an equivalent way of specifying the above config using environment
variables is:</p>
<div class="codehilite"><pre><span></span>FIBER_LOG_LEVEL=debug FIBER_LOG_FILE=stdout FIBER_BACKEND=local python code.py ...
</pre></div>


<h5 id="python-code">Python code<a class="headerlink" href="#python-code" title="Permanent link">&para;</a></h5>
<p>You can also set Fiber config in your Python code:</p>
<div class="codehilite"><pre><span></span><span class="kn">import</span> <span class="nn">fiber.config</span> <span class="k">as</span> <span class="nn">fiber_config</span>
<span class="o">...</span>
<span class="k">def</span> <span class="nf">main</span><span class="p">():</span>
    <span class="n">fiber_config</span><span class="o">.</span><span class="n">log_level</span> <span class="o">=</span> <span class="s2">&quot;debug&quot;</span>
    <span class="n">fiber_config</span><span class="o">.</span><span class="n">log_file</span> <span class="o">=</span> <span class="s2">&quot;stdout&quot;</span>
    <span class="n">fiber_config</span><span class="o">.</span><span class="n">backend</span> <span class="o">=</span> <span class="s2">&quot;local&quot;</span>
</pre></div>


<p>Note that almost all of the configurations needs to be set before you launch
any Fiber processes.
<h2 id="fiber.config.Config">Config</h2></p>
<div class="codehilite"><pre><span></span><span class="n">Config</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">conf_file</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span>
</pre></div>


<p>Fiber configuration object. Available configurations:</p>
<table>
<thead>
<tr>
<th>key</th>
<th align="left">Type</th>
<th align="left">Default</th>
<th align="left">Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td>debug</td>
<td align="left">bool</td>
<td align="left">False</td>
<td align="left">Set this to <code>True</code> to turn on debugging</td>
</tr>
<tr>
<td>image</td>
<td align="left">str</td>
<td align="left">None</td>
<td align="left">Docker image to use when starting  new processes</td>
</tr>
<tr>
<td>default_image</td>
<td align="left">str</td>
<td align="left">None</td>
<td align="left">Default docker image to use when <code>image</code> config value  is not set</td>
</tr>
<tr>
<td>backend</td>
<td align="left">str</td>
<td align="left">None</td>
<td align="left">Fiber backend to use when starting new processes. Check <a href="../platforms/">here</a> for available backends</td>
</tr>
<tr>
<td>default_backend</td>
<td align="left">str</td>
<td align="left"><code>local</code></td>
<td align="left">Default Fiber backend to use when <code>backend</code> config is not set</td>
</tr>
<tr>
<td>log_level</td>
<td align="left">str/int</td>
<td align="left"><code>logging.INFO</code></td>
<td align="left">Fiber log level. This config accepts either a int value (log levels from <code>logging</code> module like <code>logging.INFO</code>) or strings: <code>debug</code>, <code>info</code>, <code>warning</code>, <code>error</code>, <code>critical</code></td>
</tr>
<tr>
<td>log_file</td>
<td align="left">str</td>
<td align="left"><code>/tmp/fiber.log</code></td>
<td align="left">Default fiber log file path. Fiber will append the process name to this value and create one log file for each process. A special value <code>stdout</code> means to print the logs to standard output</td>
</tr>
<tr>
<td>ipc_admin_master_port</td>
<td align="left">int</td>
<td align="left"><code>0</code></td>
<td align="left">The port that master process uses to communicate with child processes. Default value is <code>0</code> which means the master process will choose a random port</td>
</tr>
<tr>
<td>kubernetes_namespace</td>
<td align="left">str</td>
<td align="left"><code>default</code></td>
<td align="left">The namespace that Fiber <code>kubernetes</code> backend will use to create pods and do other work on Kubernetes</td>
</tr>
</tbody>
</table>
                
                  
                
                
              
              
                


              
            </article>
          </div>
        </div>
      </main>
      
        

<!-- Application footer -->
<footer class="md-footer">

    <!-- Link to previous and/or next page -->
    
    <div class="md-footer-nav">
        <nav class="md-footer-nav__inner md-grid">

            <!-- Link to previous page -->
            
            <a class="md-flex md-footer-nav__link md-footer-nav__link--prev"
               href="../experimental/ring/"
               rel="prev"
               title="Ring">
                <div class="md-flex__cell md-flex__cell--shrink">
                    <i class="md-icon md-icon--arrow-back
                    md-footer-nav__button"></i>
                </div>
                <div class="md-flex__cell md-flex__cell--stretch
                  md-footer-nav__title">
              <span class="md-flex__ellipsis">
                <span class="md-footer-nav__direction">
                  Previous
                </span>
                Ring
              </span>
                </div>
            </a>
            

            <!-- Link to next page -->
            
            <a class="md-flex md-footer-nav__link md-footer-nav__link--next"
               href="../meta/"
               rel="next"
               title="Metadata">
                <div class="md-flex__cell md-flex__cell--stretch
                  md-footer-nav__title">
              <span class="md-flex__ellipsis">
                <span class="md-footer-nav__direction">
                  Next
                </span>
                Metadata
              </span>
                </div>
                <div class="md-flex__cell md-flex__cell--shrink">
                    <i class="md-icon md-icon--arrow-forward
                    md-footer-nav__button"></i>
                </div>
            </a>
            
        </nav>
    </div>
    

    <!-- Further information -->
    <div class="md-footer-meta md-typeset">
        <div class="md-footer-meta__inner md-grid">

            <!-- Copyright and theme information -->
            <div class="md-footer-copyright">
                <div class="footer-logo-smallpad"></div>
                
                <div class="md-footer-copyright__highlight">
                    Copyright &copy; 2020 Uber Technologies Inc.
                </div>
                
                Website by <a href="https://twitter.com/_calio">calio</a> powered by
                <a href="https://www.mkdocs.org">MkDocs</a>,
                <a href="https://squidfunk.github.io/mkdocs-material/">Material for MkDocs</a>,
                <a href="http://www.styleshout.com/">styleshout</a>.
            </div>

            <!-- Social links -->
            
            
            
        </div>
    </div>
</footer>
      
    </div>
    
      <script src="../assets/javascripts/application.808e90bb.js"></script>
      
      <script>app.initialize({version:"1.0.4",url:{base:".."}})</script>
      
    
  </body>
</html>